package com.qm.console.pubdef.constant.bx;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * //                       _oo0oo_
 * //                      o8888888o
 * //                      88" . "88
 * //                      (| -_- |)
 * //                      0\  =  /0
 * //                    ___/`---'\___
 * //                  .' \\|     |// '.
 * //                 / \\|||  :  |||// \
 * //                / _||||| -:- |||||- \
 * //               |   | \\\  -  /// |   |
 * //               | \_|  ''\---/''  |_/ |
 * //               \  .-\__  '-'  ___/-. /
 * //             ___'. .'  /--.--\  `. .'___
 * //          ."" '<  `.___\_<|>_/___.' >' "".
 * //         | | :  `- \`.;`\ _ /`;.`/ - ` : | |
 * //         \  \ `_.   \_ __\ /__ _/   .-` /  /
 * //     =====`-.____`.___ \_____/___.-`___.-'=====
 * //                       `=---='
 * //
 * //
 * //     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * //
 * //               佛祖保佑         永无BUG
 * <p>
 * com.qm.console.pubdef.constant.bx
 * Created on 2021/1/11.
 */
public class BxLogicMethod {

    private static final Set<String> sMethods = new HashSet<>();

    static {
        sMethods.add("$and");
        sMethods.add("$or");
        sMethods.add("$minus");
    }

    public static List<String> logicMethods() {
        return new ArrayList<>(sMethods);
    }

    private static final Set<String> sComparators = new HashSet<>();

    static {
        sComparators.add(">");
        sComparators.add(">=");
        sComparators.add("=");
        sComparators.add("<");
        sComparators.add("<=");
        sComparators.add("$in");
        sComparators.add("$exists");
    }

    public static List<String> comparators() {
        return new ArrayList<>(sComparators);
    }

    public static boolean isLogicMethod(String method) {
        return sMethods.contains(method);
    }

    public static boolean isComparator(String comparator) {
        return sComparators.contains(comparator);
    }
}
